Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Reverse minimist. Convert an object of options into an array of command-line arguments.
The dargs npm package is used to convert an object of options into an array of command-line arguments. This is particularly useful when you need to pass configuration options to a command-line tool in a programmatic way.
Basic Conversion
Converts an object of options into an array of command-line arguments. In this example, the object { foo: 'bar', baz: true, qux: false } is converted to ['--foo', 'bar', '--baz'].
const dargs = require('dargs');
const options = { foo: 'bar', baz: true, qux: false };
const args = dargs(options);
console.log(args); // ['--foo', 'bar', '--baz']
Excluding Keys
Allows you to exclude specific keys from the conversion. In this example, the key 'qux' is excluded from the resulting array.
const dargs = require('dargs');
const options = { foo: 'bar', baz: true, qux: false };
const args = dargs(options, { excludes: ['qux'] });
console.log(args); // ['--foo', 'bar', '--baz']
Including Only Specific Keys
Allows you to include only specific keys in the conversion. In this example, only the keys 'foo' and 'baz' are included in the resulting array.
const dargs = require('dargs');
const options = { foo: 'bar', baz: true, qux: false };
const args = dargs(options, { includes: ['foo', 'baz'] });
console.log(args); // ['--foo', 'bar', '--baz']
Using Short Flags
Converts long flags to short flags if specified. In this example, the long flags are converted to short flags.
const dargs = require('dargs');
const options = { foo: 'bar', baz: true, qux: false };
const args = dargs(options, { shortFlag: true });
console.log(args); // ['-f', 'bar', '-b']
Minimist is a package for parsing command-line arguments. Unlike dargs, which converts an object to command-line arguments, minimist is used to parse command-line arguments into an object. It is often used for the opposite purpose of dargs.
Yargs is a more feature-rich package for parsing command-line arguments and generating an elegant user interface. It provides more advanced features like command handling, middleware, and more, making it more comprehensive compared to dargs.
Commander is a package for building command-line interfaces. It provides a way to define commands, options, and arguments, and it also parses command-line arguments. While dargs focuses on converting objects to arguments, Commander is more about building complete CLI applications.
Reverse
minimist
. Convert an object of options into an array of command-line arguments.
Useful when spawning command-line tools.
$ npm install --save dargs
const dargs = require('dargs');
const input = {
_: ['some', 'option'], // values in '_' will be appended to the end of the generated argument list
foo: 'bar',
hello: true, // results in only the key being used
cake: false, // prepends `no-` before the key
camelCase: 5, // camelCase is slugged to `camel-case`
multiple: ['value', 'value2'], // converted to multiple arguments
pieKind: 'cherry',
sad: ':('
};
const excludes = ['sad', /.*Kind$/]; // excludes and includes accept regular expressions
const includes = ['camelCase', 'multiple', 'sad', /^pie.*/];
const aliases = {file: 'f'};
console.log(dargs(input, {excludes: excludes}));
/*
[
'--foo=bar',
'--hello',
'--no-cake',
'--camel-case=5',
'--multiple=value',
'--multiple=value2',
'some',
'option'
]
*/
console.log(dargs(input, {
excludes: excludes,
includes: includes
}));
/*
[
'--camel-case=5',
'--multiple=value',
'--multiple=value2'
]
*/
console.log(dargs(input, {includes: includes}));
/*
[
'--camel-case=5',
'--multiple=value',
'--multiple=value2',
'--pie-kind=cherry',
'--sad=:('
]
*/
console.log(dargs({
foo: 'bar',
hello: true,
file: 'baz'
}, {
aliases: aliases
}));
/*
[
'--foo=bar',
'--hello',
'-f baz'
]
*/
Type: object
Object to convert to command-line arguments.
Type: object
Type: array
Keys or regex of keys to exclude. Takes precedence over includes
.
Type: array
Keys or regex of keys to include.
Type: object
Maps keys in input
to an aliased name. Matching keys are converted to options with a single dash ("-") in front of the aliased name and a space separating the aliased name from the value. Keys are still affected by includes
and excludes
.
Type: boolean
Default: true
Setting to false
switches the separator in generated commands from an equals sign =
to a single space
. For example:
console.log(dargs({foo: 'bar'}, {useEquals: false}));
/*
[
'--foo bar'
]
*/
Type: boolean
Default: false
Don't include false
values. This is mostly useful when dealing with strict argument parsers that would throw on unknown arguments like --no-foo
.
MIT © Sindre Sorhus
FAQs
Reverse minimist. Convert an object of options into an array of command-line arguments.
The npm package dargs receives a total of 5,221,908 weekly downloads. As such, dargs popularity was classified as popular.
We found that dargs demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.